package day7.homework;

import java.util.*;

//a.利用Map,初始化如下数据，完成下面的功能：
//从命令行读入一个字符串，表示一个年份，输出该年的世界杯冠军是哪支球队。如果该 年没有举办世界杯，则输出：没有举办世界杯。
//
//b.在原有世界杯Map 的基础上，增加如下功能： 读入一支球队的名字，输出该球队夺冠的年份列表。 例如，读入“巴西”，应当输出 1958 1962 1970 1994 2002 读入“荷兰”，应当输出 没有获得过世界杯
//
//届数        举办年份       举办地点     冠军
//第一届    1930年          乌拉圭        乌拉圭
//第二届    1934年          意大利        意大利
//第三届    1938年          法国           意大利
//第四届    1950年          巴西           乌拉圭
//第五届    1954年          瑞士           西德
//第六届    1958年          瑞典           巴西
//第七届    1962年          智利           巴西
//第八届    1966年          英格兰        英格兰
//第九届    1970年          墨西哥        巴西
//第十届    1974年          前西德        西德
//第十一届 1978年          阿根廷        阿根廷
//第十二届 1982年          西班牙        意大利
//第十三届 1986年          墨西哥        阿根廷
//第十四届 1990年          意大利        西德
//第十五届 1994年          美国           巴西
//第十六届 1998年          法国           法国
//第十七届 2002年          韩日           巴西
//第十八届 2006年          德国           意大利
//第十九届 2010年          南非           西班牙
//第二十届 2014年          巴西           德国
//二十一届 2018年          俄罗斯        法国
//二十二届 2022年          卡塔尔        阿根廷
public
class Demo2 {
    private static final Map<String, WorldCup> worldCupMap = new HashMap<>();
    static {
        String[] sessions = {
                "第一届", "第二届", "第三届", "第四届", "第五届", "第六届", "第七届", "第八届",
                "第九届", "第十届", "第十一届", "第十二届", "第十三届", "第十四届", "第十五届",
                "第十六届", "第十七届", "第十八届", "第十九届", "第二十届", "第二十一届", "第二十二届"
        };
        String[] years = {
                "1930年", "1934年", "1938年", "1950年", "1954年", "1958年", "1962年", "1966年",
                "1970年", "1974年", "1978年", "1982年", "1986年", "1990年", "1994年", "1998年",
                "2002年", "2006年", "2010年", "2014年", "2018年", "2022年"
        };
        String[] venues = {
                "乌拉圭", "意大利", "法国", "巴西", "瑞士", "瑞典", "智利", "英格兰",
                "墨西哥", "前西德", "阿根廷", "西班牙", "墨西哥", "意大利", "美国", "法国",
                "韩日", "德国", "南非", "巴西", "俄罗斯", "卡塔尔"
        };
        String[] champions = {
                "乌拉圭", "意大利", "意大利", "乌拉圭", "西德", "巴西", "巴西", "英格兰",
                "巴西", "西德", "阿根廷", "意大利", "阿根廷", "西德", "巴西", "法国",
                "巴西", "意大利", "西班牙", "德国", "法国", "阿根廷"
        };
        for (int i = 0; i < years.length; i++) {
            worldCupMap.put(years[i].substring(0,years[i].length()-1),new WorldCup(
                    sessions[i],
                    years[i],
                    venues[i],
                    champions[i]
            ));
        }
    }
    public static
    void main(String[] args) {
        demo1();
    }
    public static  void demo1() {
        Map<String, WorldCup> map = worldCupMap;
        Scanner sc = new Scanner(System.in);
        System.out.println("输入年份：");
        String str = sc.next();
        if (map.containsKey(str)) {
            WorldCup w = map.get(str);
            System.out.println(w.yearOfHolding + "的冠军是：" + w.champion);
        } else {
            System.out.println("没有举办世界杯");
        }
//        boolean b=false;
//        Iterator<Map.Entry<String,WorldCup>> it=map.entrySet().iterator();
//        while (it.hasNext()){
//            Map.Entry e=it.next();
//            if(str.equals(e.getKey())){
//                WorldCup w= (WorldCup) e.getValue();
//                System.out.println(w.yearOfHolding+"的冠军是："+w.champion);
//                b=true;
//                break;
//            }
//        }
//        if(!b){
//            System.out.println("没有举办世界杯");
//        }
        Set<String> year = new TreeSet<>();
        System.out.println("输入球队名字：");
        String str1 = sc.next();
        boolean b1 = false;
        for (Map.Entry e : map.entrySet()) {
            WorldCup w = (WorldCup) e.getValue();
            if (str1.equals(w.champion)) {
                year.add((String) e.getKey());
                b1 = true;
            }
        }
        if (!b1) System.out.println("没有获得过世界杯");
        else System.out.println(year);
    }
}
class WorldCup{
    String numberOfSessions;
    String yearOfHolding;
    String venue ;
    String champion;
    public
    WorldCup(String numberOfSessions, String yearOfHolding, String venue, String champion) {
        this.numberOfSessions = numberOfSessions;
        this.yearOfHolding = yearOfHolding;
        this.venue = venue;
        this.champion = champion;
    }
}